home *** CD-ROM | disk | FTP | other *** search
-
-
-
- oooorrrrddddiiiisssstttt((((1111cccc)))) oooorrrrddddiiiisssstttt((((1111cccc))))
-
-
-
- NNNNAAAAMMMMEEEE
- ordist - remote file distribution program
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- oooorrrrddddiiiisssstttt [----nnnnqqqqbbbbRRRRhhhhiiiivvvvwwwwyyyyDDDD] [----ffff _d_i_s_t_f_i_l_e] [----dddd _v_a_r=_v_a_l_u_e] [----mmmm _h_o_s_t] [name...]
- oooorrrrddddiiiisssstttt [----nnnnqqqqbbbbRRRRhhhhiiiivvvvwwwwyyyyDDDD] ----cccc _n_a_m_e ... [login@]host[:dest]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _O_r_d_i_s_t is a program to maintain identical copies of files over multiple
- hosts. It preserves the owner, group, mode, and mtime of files if
- possible and can update programs that are executing. _O_r_d_i_s_t reads
- commands from _d_i_s_t_f_i_l_e to direct the updating of files and/or
- directories. If _d_i_s_t_f_i_l_e is `-', the standard input is used. If no ----ffff
- option is present, the program looks first for `distfile', then
- `Distfile' to use as the input. If no names are specified on the command
- line, _o_r_d_i_s_t will update all of the files and directories listed in
- _d_i_s_t_f_i_l_e. Otherwise, the argument is taken to be the name of a file to
- be updated or the label of a command to execute. If label and file names
- conflict, it is assumed to be a label. These may be used together to
- update specific files using specific commands.
-
- The ----cccc option forces _o_r_d_i_s_t to interpret the remaining arguments as a
- small _d_i_s_t_f_i_l_e. The equivalent distfile is as follows.
-
- ( _n_a_m_e ... ) -> [_l_o_g_i_n@]_h_o_s_t
- install [_d_e_s_t] ;
-
-
- Other options:
-
- ----dddd Define _v_a_r to have _v_a_l_u_e. The ----dddd option is used to define or
- override variable definitions in the _d_i_s_t_f_i_l_e. _V_a_l_u_e can be the
- empty string, one name, or a list of names surrounded by parentheses
- and separated by tabs and/or spaces.
-
- ----mmmm Limit which machines are to be updated. Multiple ----mmmm arguments can be
- given to limit updates to a subset of the hosts listed the _d_i_s_t_f_i_l_e.
-
- ----nnnn Print the commands without executing them. This option is useful for
- debugging _d_i_s_t_f_i_l_e.
-
- ----qqqq Quiet mode. Files that are being modified are normally printed on
- standard output. The ----qqqq option suppresses this.
-
- ----RRRR Remove extraneous files. If a directory is being updated, any files
- that exist on the remote host that do not exist in the master
- directory are removed. This is useful for maintaining truly
- identical copies of directories.
-
- ----hhhh Follow symbolic links. Copy the file that the link points to rather
- than the link itself.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- oooorrrrddddiiiisssstttt((((1111cccc)))) oooorrrrddddiiiisssstttt((((1111cccc))))
-
-
-
- ----iiii Ignore unresolved links. _O_r_d_i_s_t will normally try to maintain the
- link structure of files being transferred and warn the user if all
- the links cannot be found.
-
- ----vvvv Verify that the files are up to date on all the hosts. Any files
- that are out of date will be displayed but no files will be changed
- nor any mail sent.
-
- ----wwww Whole mode. The whole file name is appended to the destination
- directory name. Normally, only the last component of a name is used
- when renaming files. This will preserve the directory structure of
- the files being copied instead of flattening the directory
- structure. For example, renaming a list of files such as ( dir1/f1
- dir2/f2 ) to dir3 would create files dir3/dir1/f1 and dir3/dir2/f2
- instead of dir3/f1 and dir3/f2.
-
- ----yyyy Younger mode. Files are normally updated if their _m_t_i_m_e and _s_i_z_e
- (see _s_t_a_t(2)) disagree. The ----yyyy option causes _o_r_d_i_s_t not to update
- files that are younger than the master copy. This can be used to
- prevent newer copies on other hosts from being replaced. A warning
- message is printed for files which are newer than the master copy.
-
- ----bbbb Binary comparison. Perform a binary comparison and update files if
- they differ rather than comparing dates and sizes.
-
- ----DDDD Print debugging messages.
-
- _D_i_s_t_f_i_l_e contains a sequence of entries that specify the files to be
- copied, the destination hosts, and what operations to perform to do the
- updating. Each entry has one of the following formats.
-
- <variable name> `=' <name list>
- [ label: ] <source list> `->' <destination list> <command list>
- [ label: ] <source list> `::' <time_stamp file> <command list>
-
- The first format is used for defining variables. The second format is
- used for distributing files to other hosts. The third format is used for
- making lists of files that have been changed since some given date. The
- _s_o_u_r_c_e _l_i_s_t specifies a list of files and/or directories on the local
- host which are to be used as the master copy for distribution. The
- _d_e_s_t_i_n_a_t_i_o_n _l_i_s_t is the list of hosts to which these files are to be
- copied. Each file in the source list is added to a list of changes if
- the file is out of date on the host which is being updated (second
- format) or the file is newer than the time stamp file (third format).
-
- Labels are optional. They are used to identify a command for partial
- updates.
-
- Newlines, tabs, and blanks are only used as separators and are otherwise
- ignored. Comments begin with `#' and end with a newline.
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- oooorrrrddddiiiisssstttt((((1111cccc)))) oooorrrrddddiiiisssstttt((((1111cccc))))
-
-
-
- Variables to be expanded begin with `$' followed by one character or a
- name enclosed in curly braces (see the examples at the end).
-
- The source and destination lists have the following format:
-
- <name>
- or
- `(' <zero or more names separated by white-space> `)'
-
- The shell meta-characters `[', `]', `{', `}', `*', and `?' are
- recognized and expanded (on the local host only) in the same way as
- _c_s_h(1). They can be escaped with a backslash. The `~' (tilde) character
- is also expanded in the same way as _c_s_h but is expanded separately on the
- local and destination hosts. When the ----wwww option is used with a file name
- that begins with `~', everything except the home directory is appended to
- the destination name. File names which do not begin with `/' or `~' use
- the destination user's home directory as the root directory for the rest
- of the file name.
-
- The command list consists of zero or more commands of the following
- format.
-
- `install' <options> opt_dest_name `;'
- `notify' <name list> `;'
- `except' <name list> `;'
- `except_pat' <pattern list> `;'
- `special' <name list> string `;'
-
-
- The _i_n_s_t_a_l_l command is used to copy out of date files and/or directories.
- Each source file is copied to each host in the destination list.
- Directories are recursively copied in the same way. _O_p_t__d_e_s_t__n_a_m_e is an
- optional parameter to rename files. If no _i_n_s_t_a_l_l command appears in the
- command list or the destination name is not specified, the source file
- name is used. Directories in the path name will be created if they do
- not exist on the remote host. To help prevent disasters, a non-empty
- directory on a target host will never be replaced with a regular file or
- a symbolic link. However, under the `-RRRR' option a non-empty directory
- will be removed if the corresponding filename is completely absent on the
- master host. The _o_p_t_i_o_n_s are `-RRRR', `-hhhh', `-iiii', `-vvvv', `-wwww', `-yyyy', and
- `-bbbb' and have the same semantics as options on the command line except
- they only apply to the files in the source list. When specifying several
- options, each one mmmmuuuusssstttt begin with a hyphen. For example, use -bbbb -vvvv
- instead of -bbbbvvvv, which is interpreted as the destination directory. The
- login name used on the destination host is the same as the local host
- unless the destination name is of the format ``login@host".
-
- The _n_o_t_i_f_y command is used to mail the list of files updated (and any
- errors that may have occurred) to the listed names. If no `@' appears in
- the name, the destination host is appended to the name (e.g., name1@host,
- name2@host, ...).
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- oooorrrrddddiiiisssstttt((((1111cccc)))) oooorrrrddddiiiisssstttt((((1111cccc))))
-
-
-
- The _e_x_c_e_p_t command is used to update all of the files in the source list
- eeeexxxxcccceeeepppptttt for the files listed in _n_a_m_e _l_i_s_t. This is usually used to copy
- everything in a directory except certain files.
-
- The _e_x_c_e_p_t__p_a_t command is like the _e_x_c_e_p_t command except that _p_a_t_t_e_r_n
- _l_i_s_t is a list of regular expressions (see _e_d(1) for details). If one of
- the patterns matches some string within a file name, that file will be
- ignored. Note that since `\' is a quote character, it must be doubled to
- become part of the regular expression. Variables are expanded in _p_a_t_t_e_r_n
- _l_i_s_t but not shell file pattern matching characters. To include a `$',
- it must be escaped with `\'.
-
- The _s_p_e_c_i_a_l command is used to specify _s_h(1) commands that are to be
- executed on the remote host after the file in _n_a_m_e _l_i_s_t is updated or
- installed. If the _n_a_m_e _l_i_s_t is omitted then the shell commands will be
- executed for every file updated or installed. The shell variable `FILE'
- is set to the current filename before executing the commands in _s_t_r_i_n_g.
- _S_t_r_i_n_g starts and ends with `"' and can cross multiple lines in _d_i_s_t_f_i_l_e.
- Multiple commands to the shell should be separated by `;'. Commands are
- executed in the user's home directory on the host being updated. The
- _s_p_e_c_i_a_l command can be used to rebuild private databases, etc. after a
- program has been updated.
-
- The following is a small example.
-
- HOSTS = (sequoia alic@redwood)
-
- FILES = (/d1/project/{src,bin,lib,doc,dbm})
-
- EXLIB = (acct.dir acct.pag)
-
- ${FILES} -> ${HOSTS}
- install -R ;
- except /d1/project/dbm/${EXLIB} ;
- special /d1/project/dbm/acct "mkdbm $FILE" ;
-
- srcs:
- /d1/project/src -> yosemite
- except_pat ( \\.o\$ /RCS\$ ) ;
-
- PROGS = (dog flight arena)
-
- update:
- /usr/src/demos/${PROGS} -> lassen
- install /usr/local/demos ;
- notify bob;
-
- ${FILES} :: stamp.shasta
- notify chuck@shasta ;
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- oooorrrrddddiiiisssstttt((((1111cccc)))) oooorrrrddddiiiisssstttt((((1111cccc))))
-
-
-
- FFFFIIIILLLLEEEESSSS
- distfile input command file
- /tmp/rdist* temporary file for update lists
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- sh(1), csh(1), stat(2), rdist(1)
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- A complaint about mismatch of ordist version numbers may really stem from
- some problem with starting your shell.
-
- BBBBUUUUGGGGSSSS
- Source files must reside on the local host where ordist is executed.
-
- There is no easy way to have a special command executed after all files
- in a directory have been updated.
-
- Variable expansion only works for name lists; there should be a general
- macro facility.
-
- _O_r_d_i_s_t aborts on files which have a negative mtime (before Jan 1, 1970).
-
- There should be a `force' option to allow replacement of non-empty
- directories by regular files or symlinks. A means of updating file modes
- and owners of otherwise identical files is also needed.
-
- _O_r_d_i_s_t doesn't interpret properly multiple options to the 'install'
- command unless each one begins with a hyphen.
-
- On 4.3BSD, the local _r_d_i_s_t expects the remote _r_d_i_s_t to reside in
- /usr/ucb. On IRIX, it resides in /usr/bsd. To allow the 4.3BSD _r_d_i_s_t to
- communicate with the IRIS, create a symbolic link for /usr/ucb:
- su
- ln -s /usr/bsd /usr/ucb
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-